package com.wasion.core.config;

import java.util.List;

import com.wasion.core.util.ConfigReader;
import com.wasion.core.util.PackageUtil;
import com.wasion.core.util.StringUtil;

/**
 * 
 * @ClassName: Config
 * @Description: 系统配置类
 * @author 高意
 * @date 2014年7月23日 下午4:59:59
 * 
 */
public class Config {

	// 全局日志标记
	public static String LOG_TAG_GLOBOL = "PWPORTABLE";
	// 数据库名称
	public static String DATABASE_NAME = "pwportable.db";
	// 数据库存放路径
	public static String DATABASE_PATH = "pwportable/database";
	// 数据库的版本号
	public static int DATABASE_VERSION = 1;
	// 需初始化的数据库表的字符串
	public static String DATABASE_INIT_TABLES_STR = "";
	// 需初始化的数据库表
	public static Class<?>[] DATABASE_INIT_TABLES = null;

	// JavaScriptInterface所有的类串
	public static String JAVASCRIPT_INTERFACE_CLASSES_STR = "";

	// 导出Excel存放路径
	public static String EXPORT_PATH = "pwportable/export";
	
	// 配置加载器
	private static ConfigReader cReader = null;
	static {
		cReader = new ConfigReader("system.properties");
	}

	static {

		// 从配置文件读取数据库的配置信息
		String dbName = cReader.getProperty("database.name");
		if (!StringUtil.isEmpty(dbName)) {
			// dbName.replaceAll("\\", ""); // 去除反斜线
			DATABASE_NAME = dbName;
			if (!dbName.toLowerCase().endsWith(".db")) {
				DATABASE_NAME += ".db";
			}
		}

		String dbPath = cReader.getProperty("database.path");
		if (!StringUtil.isEmpty(dbPath)) {
			DATABASE_PATH = dbPath;
		}

		String dbVersion = cReader.getProperty("database.version");
		if (!StringUtil.isEmpty(dbVersion)) {
			DATABASE_VERSION = Integer.parseInt(dbVersion);
		}

		String classNames = cReader.getProperty("database.po.classes");
		if (!StringUtil.isEmpty(classNames)) {
			DATABASE_INIT_TABLES_STR = classNames;
		}

		List<Class<?>> tempClasses = PackageUtil
				.getClasses(DATABASE_INIT_TABLES_STR);
		DATABASE_INIT_TABLES = new Class<?>[tempClasses.size()];
		for (int i = 0; i < tempClasses.size(); i++) {
			DATABASE_INIT_TABLES[i] = tempClasses.get(i);
		}

		String jsiClasses = cReader.getProperty("webview.jsi.classes");
		if (!StringUtil.isEmpty(jsiClasses)) {
			JAVASCRIPT_INTERFACE_CLASSES_STR = jsiClasses;
		}
		
		String exportPath = cReader.getProperty("export.path");
		if (!StringUtil.isEmpty(exportPath)) {
			EXPORT_PATH = exportPath;
		}
	}
}
